delegated execution系の仕様
一覧
概要
トランザクションの実行を3rd partyに任せるための仕様や実装。利用用途としては
gasの支払いを肩代わりすることによるUXの改善
定期購入
など
upgradable contractなどを作るProxy patternについてはこちら -> Proxy系の仕様 WIP
tokenをtransferする際にdelegateにgasを負担してもらい、delegateに対してtokenを支払う方法
https://gyazo.com/6ce59501e1282b793d1b554a0ecaee53
from: tokenの送信元の人
to: tokenの送信先の人
delegate: トランザクションの実行、gasの支払いをする人
fee: delegateに支払うトークンの料
amount: toに送るトークンの料
1. Aliceがnonce, from, to, delegate, fee, amountを指定して自分のprivate keyで署名する
2. CharlieがAliceの署名されたsignatureとto, amount, fee, nonceを指定してtransactionを実行する
3. Bobにamount、Charlieにfeeのtokenが送られる
ERC865をtokenのtran sferだけでなく一般のtransactionの実行に発展させたようなもの。
To: 呼び出し先のコントラクト
From: 呼び出し元のコントラクト
Value: ETHのvalue
Data: 実行するバイトコード
Nonce: nonceまたはtimestamp
GasToken: gasとして支払うトークン(0の場合はETH)
GasPrice: gas price
GasLimit: gas limit
https://gyazo.com/653f9741f3042a2d999d256186b161bb
subscriptionの文脈で使われるもの
ERC777のOperatorの仕組みを使ってtransactionを代わりにOperatorに実行してもらう
配列でdataやsignatureを渡してbatch的に実行させることを検討している
delegator, データ(byte32)の名前、データ(bytes)を登録するシンプルな仕様
登録時のgas costを安くするのが目的
どうTxを実行するかは特に決められていない
トランザクション実行時に渡す元のトランザクション用のデータを payload という形にしてなんでも受け付けるようにしている
payloadをon-chainに保存出来る
リンク
実装
Status: Identity Gas Relay
Gnosis: Safe Contract
uPort: Meta transactions
その他